# -*- codeing = utf-8 -*-
# @Time : 2021/2/26 15:39
# @Atuthor: 朱朱
# @File: 111私有属性的使用.py
# @Software: PyCharm
""
"""
在实际开发中，对象的某些属性或者方法可能只希望在对象的内部别使用，
而不希望在外部被访问到，这时就可以定义私有属性和私有方法。
在定义属性或方法时，在属性名或者方法名前增加两个下划线__，
__定义的就是私有属性或方法。
"""
import datetime

class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.__money = 10000 # 以二个下划线开始的变量为私有变量

    def get_money(self):
        return self.__money

    def set_money(self,qian):
        if type(qian) != int:
            print('sorry')
            return '请输入正确的钱数'
        print('ok')
        self.__money=qian
        return self.__money

    def __demo(self): # 以__开始的函数,为私有函数,在外部无法调用
        print('我是私有函数,ok')


p = Person('jack',18)
print(p.name, p.age)
print(p.get_money())
print(p.set_money('hello'))
print(p.set_money(8888))

p._Person__demo() # 通过这种方法可以强制调用私有函数和属性
print(p._Person__money)


